package com.jianqiao.delivery.pay.domain.initr2p;

import lombok.Data;

import java.util.List;

/**
 * author: cyx
 * create: 2024/11/22 17:28
 **/
@Data
public class PaymentRequestEntity {
    private String debtorAgentId;

    private String debtorAgentCountry;

    private String debtorCountry;

    private String endToEndId;

    private Integer requestedAmount;

    private String requestedAmountCurrency;

    private String debtorAliasType;

    private String debtorAlias;

    public PaymentRequestEntity(String debtorAgentId, String debtorAgentCountry, String debtorCountry, String endToEndId, Integer requestedAmount, String requestedAmountCurrency, String debtorAliasType, String debtorAlias) {
        this.debtorAgentId = debtorAgentId;
        this.debtorAgentCountry = debtorAgentCountry;
        this.debtorCountry = debtorCountry;
        this.endToEndId = endToEndId;
        this.requestedAmount = requestedAmount;
        this.requestedAmountCurrency = requestedAmountCurrency;
        this.debtorAliasType = debtorAliasType;
        this.debtorAlias = debtorAlias;
    }

    public static PaymentRequestEntityBuild builder() {
        return new PaymentRequestEntityBuild();
    }

    public static class PaymentRequestEntityBuild {
        private String debtorAgentId;

        private String debtorAgentCountry;

        private String debtorCountry;

        private String endToEndId;

        private Integer requestedAmount;

        private String requestedAmountCurrency;

        private String debtorAliasType;

        private String debtorAlias;

        PaymentRequestEntityBuild() {

        }

        public PaymentRequestEntityBuild debtorAgentId(String debtorAgentId) {
            this.debtorAgentId = debtorAgentId;
            return this;
        }

        public PaymentRequestEntityBuild debtorAgentCountry(String debtorAgentCountry) {
            this.debtorAgentCountry = debtorAgentCountry;
            return this;
        }

        public PaymentRequestEntityBuild debtorCountry(String debtorCountry) {
            this.debtorCountry = debtorCountry;
            return this;
        }

        public PaymentRequestEntityBuild endToEndId(String endToEndId) {
            this.endToEndId = endToEndId;
            return this;
        }

        public PaymentRequestEntityBuild requestedAmount(Integer requestedAmount) {
            this.requestedAmount = requestedAmount;
            return this;
        }

        public PaymentRequestEntityBuild requestedAmountCurrency(String requestedAmountCurrency) {
            this.requestedAmountCurrency = requestedAmountCurrency;
            return this;
        }

        public PaymentRequestEntityBuild debtorAliasType(String debtorAliasType) {
            this.debtorAliasType = debtorAliasType;
            return this;
        }

        public PaymentRequestEntityBuild debtorAlias(String debtorAlias) {
            this.debtorAlias = debtorAlias;
            return this;
        }

        public PaymentRequestEntity build() {
            return new PaymentRequestEntity(this.debtorAgentId ,
                    this.debtorAgentCountry ,
                    this.debtorCountry ,
                    this.endToEndId ,
                    this.requestedAmount ,
                    this.requestedAmountCurrency ,
                    this.debtorAliasType ,
                    this.debtorAlias);
        }
    }
}
